#pragma once

#include <gtest/gtest.h>
#include "VisualGTest.pb.h"

using namespace VisualGTest::Message;

/**
 * Generates protobuf messages from GTest domain objects.
 */
class MessageFactory
{
public:
    MessageFactory();
    ~MessageFactory();

    UnitTest Create(const testing::UnitTest& unitTest) const;
    TestCase Create(const testing::TestCase& testCase) const;
    TestInfo Create(const testing::TestInfo& testinfo) const;
    TestResult Create(const testing::TestResult& testResult) const;
    TestPartResult Create(const testing::TestPartResult& testPartResult) const;
    TestProperty Create(const testing::TestProperty& testProperty) const;
};
